package bite;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Creared with IntelliJ IDEA.
 * Description:杨辉三角的变形
 * 以上三角形的数阵，第一行只有一个数1，以下每行的每个数，是恰好是它上面的数、左上角数和右上角的数，3个数之和（如果不存在某个数，认为该数就是0）。
 * 求第n行第一个偶数出现的位置。如果没有偶数，则输出-1。例如输入3,则输出2，输入4则输出3，输入2则输出-1。
 * User:yxd
 * Date:2022-04-29
 * Time:22:13
 */
public class Day17_1 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        //两个奇数相加可以得到一个偶数,两奇数一偶数是偶数,两偶数一奇数是奇数
        //前两行没有偶数
        //第二行，前三个数字为奇数，所以，它下面的的一行（第三行）第二个数必定为偶数
        //第三行前三个数为奇偶奇，所以，第四行一定为奇奇偶，所以第五行一定为奇偶偶，
        //第六行为奇奇奇，显然，第六行与第二行相同，都为三个奇数。可以定为一次循环,剩下就是循环了

        if(n <= 2)
            System.out.println(-1);
        else if(n % 2 == 1){
            System.out.println(2);
        }else{
            if(n % 4 == 0)
                System.out.println(3);
            else
                System.out.println(4);
        }
    }


    public static void main1(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int[][] dp = new int[n][2 * n - 1];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 2 * n - 1; j++) {
                dp[i][j] = 0;
            }
        }
        dp[0][0] = 1;
        for (int i = 1; i < n; i++) {
            dp[i][0] = 1;
            dp[i][2 * i] = 1;
            for (int j = 1; j < 2 * i; j++) {
                if(j == 1){
                    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
                }else{
                    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1] + dp[i - 1][j - 2];
                }
            }
        }
        int k = 0;
        for (; k < 2 * n - 1; k++) {
            if(dp[n - 1][k] % 2 == 0){
                System.out.println(k + 1);
                break;
            }
        }
        if(k == 2 * n - 1){
            System.out.println(-1);
        }

    }
    public static void main4(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        //第一行一个1
        //状态定义F(i,j)表示当前位置的数字
        //状态转移方程F(i,j) = F(i - 1, j-1) + F(i - 1 ,j) + F(i - 1,j  + 1);
        //状态初值第一行中间位置为1
        //n表示第n行  而这一行的个数为2n - 1
        int[][] dp = new int[n][2 * n - 1];
        dp[0][n - 1] = 1;
        for(int i = 1;i < n;i ++){
            for(int j = 0;j < dp[0].length;j ++){
                if(j - 1 < 0){
                    dp[i][j] = dp[i - 1][j] + dp[i - 1][j + 1];
                    continue;
                }
                if(j + 1 == dp[0].length){
                    dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
                    continue;
                }
                dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j] + dp[i - 1][j + 1];
            }
        }
        int count = 0;

        for (int j = 0; j < dp[0].length; j++) {
            if(dp[n - 1][j] != 0){
                count ++;
            }
            if(dp[n - 1][j] % 2 == 0){
                System.out.println(count);
                break;
            }
            if(j == dp[0].length - 1){
                System.out.println(-1);
                break;
            }
        }
    }


    public static void main3(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        //第一行一个1
        //状态定义F(i,j)表示当前位置的数字
        //状态转移方程F(i,j) = F(i - 1, j-1) + F(i - 1 ,j) + F(i - 1,j  + 1);
        //状态初值第一行中间位置为1
        //n表示第n行  而这一行的个数为2n - 1

        long[][] dp = new long[n][2 * n - 1];//常规数组
        dp[0][n - 1] = 1;
        for (int i = 1; i < n; i++) {
            for (int j = 0; j < dp[0].length; j++) {
                if (j - 1 < 0) {
                    dp[i][j] = dp[i - 1][j] + dp[i - 1][j + 1];
                    continue;
                }
                if (j + 1 == dp[0].length) {
                    dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
                    continue;
                }
                dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j] + dp[i - 1][j + 1];
            }
        }
        int count = 0;/*

        for (int j = 0; j < dp[0].length; j++) {
            if(dp[n - 1][j] != 0){
                count ++;
            }
            if(dp[n - 1][j] % 2 == 0){
                System.out.println(count);
                break;
            }
            if(j == dp[0].length - 1){
                System.out.println(-1);
                break;
            }
        }*/
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 2 * n - 1; j++) {
                System.out.printf("%d\t", dp[i][j]);//打印所有
            }
            System.out.println();
        }
    }




    public static void main2(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        if (n == 1) {
            System.out.println(-1);
            return;
        }
        List<List<Integer>> ret = new ArrayList<>();//动态数组
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < n - 1; i++) {
            list.add(0);
        }
        list.add(1);
        list.add(0);
        list.add(0);
        ret.add((new ArrayList<>(list)));
        for (int i = 1; i < n + 1; i++) {
            list.set(0, ret.get(i - 1).get(0) + ret.get(i - 1).get(1));
            for (int j = 1; j < n + 1; j++) {
                list.set(j, ret.get(i - 1).get(j - 1) + ret.get(i - 1).get(j) + ret.get(i - 1).get(j + 1));
            }
            ret.add(new ArrayList<>(list));
        }
        int count = 0;
        for (int j = 0; j < ret.get(0).size(); j++) {
            if (ret.get(n - 1).get(j) != 0) {
                count++;
            }
            if (ret.get(n - 1).get(j) % 2 == 0) {
                System.out.println(count);
                break;
            }
            if (j == (2 * n - 1 - 1) / 2) {
                System.out.println(-1);
                break;
            }
        }

    }
}
